package com.sh.rbac.core.encrypt.annotation;

import com.sh.rbac.core.encrypt.enums.AlgorithmType;
import com.sh.rbac.core.encrypt.enums.EncodeType;

import java.lang.annotation.*;

/**
 * 字段加密注解
 *
 * @author wb
 * @since 2025-10-23
 */

@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface FieldEncrypt {

    /**
     * 加密算法
     */
    AlgorithmType algorithm() default AlgorithmType.DEFAULT;

    /**
     * 密钥
     */
    String secretKey() default "";

    /**
     * 私钥
     */
    String privateKey() default "";

    /**
     * 公钥
     */
    String publicKey() default "";

    /**
     * 编码方式
     */
    EncodeType encode() default EncodeType.DEFAULT;

}
